package com.cnc.common.web.oss;

import java.io.File;
import java.io.FileNotFoundException;
import java.io.InputStream;
import java.util.List;

/**
 * 描述：文件上传下载操作
 * 作者：CNC
 *
 *
 * Created by c9131 on 2017-09-26.
 */
public interface OSSFileUpload {

    /**
     *  上传文件
     * @param path 上传到哪个目录
     * @param fileName  文件名
     * @param file 上传文件
     * @return 文件 key
     * @throws FileNotFoundException
     */
    String uploadFile(String path,String fileName, File file) throws FileNotFoundException;

    /**
     * 上传文件
     * @param path 上传到哪个目录
     * @param fileName 文件名
     * @param contentLength 文件大小
     * @param fileData 文件流
     * @return 文件 key
     */
    String uploadFile(String path, String fileName, long contentLength, InputStream fileData);

    /**
     * 获取文件的地址
     * @param key 文件 key
     * @return 文件的地址
     */
    String getAddress(String key);

    /**
     * 下载文件
     * @param key 文件 key
     * @param fileDownloadPath 文件信息
     */
    void downloadFile(String key, File fileDownloadPath);


    /**
     * 下载文件
     * @param key 文件 key
     * @return   文件信息
     */
    FileContent downloadFile(String key);

    /**
     * 查询文件列表
     * @param path 文件目录
     * @return 文件目录下的文件名集合
     */
    List<String> listFile(String path);

}
